package fightplan.algorithmen.ko;

import fightplan.business.Category;
import fightplan.business.Fight;
import fightplan.business.Plan;
import fightplan.business.Winner;

public class FinalrundePlanFactory extends KOPlanFactory {

	public Plan plan(Category category) {
		FinalrundePlan finalrundePlan = new FinalrundePlan();

		super.plan(finalrundePlan, category, true);

		Fight rootFight = finalrundePlan.getRootFight();

		// Den Final zur Finalrunde umbauen und die beiden Trostrundengewinner
		// hinzufügen

		rootFight.addFighter(finalrundePlan.getLowerTrostRundeFights().get(0).getWinResultHolder());
		rootFight.addFighter(finalrundePlan.getUpperTrostRundeFights().get(0).getWinResultHolder());

		// Final umbenennen

		rootFight.setName("Finalrunde");

		// Die Rangliste anders aufbauen, nur noch abhängig vom Final

		finalrundePlan.getWinners().remove(3);
		finalrundePlan.getWinners().remove(2);

		finalrundePlan.getWinners().add(new Winner(3, rootFight.getResultHolder(2)));
		finalrundePlan.getWinners().add(new Winner(4, rootFight.getResultHolder(3)));

		return finalrundePlan;
	}

}
